Reverse a linked list

Given a linked list of N nodes. The task is to reverse this list. Example 1: Input: LinkedList: 1->2->3->4->5->6 Output: 6 5 4 3 2 1 Explanation: After reversing the list,elements are 6->5->4->3->2->1. Example 2: Input: LinkedList: 2->7->8->9->10 Output: 10 9 8 7 2 Explanation: After reversing the list,elements are 10->9->8->7->2.



        Code
        
    Node* reverseList(Node *head)
    {
    Node *prevNode, *curNode;

    if(head != NULL)
    {
        prevNode = head;
        curNode = head->next;
        head = head->next;

        prevNode->next = NULL; // Make first node as last node

        while(head != NULL)
        {
            head = head->next;
            curNode->next = prevNode;

            prevNode = curNode;
            curNode = head;
        }

        head = prevNode;
        }
        return head;
    }